Content management systems manage and provide access to content items stored in a repository. Some content management systems use stored metadata to track, manage, and provide access to content items store in an associated repository. In some cases, retention functionality is provided, e.g., to ensure that a document or other content item is retained for a required and/or desired period and subsequently disposed of in a prescribed way. A simple “document” or other logical stored object may in some cases include multiple components each stored in the repository as a separate content item, e.g., an email and its attachment or a primary document and one or more other content items incorporate or included in the primary document. A logical stored object that includes two or more content items stored and tracked separately by a content management system are referred to herein as a “virtual document” and/or a “complex object”. Depending on the needs of a particular user, enterprise, etc., different requirements may apply in terms of whether and how retention applied to a primary or root node of a complex object is applied as well to children of the root node. Therefore, there is a need for a flexible and effective way to apply retention to complex objects.